package com.weai.service;

import com.weai.dto.TaskDTO;
import com.weai.dto.TaskQueryDTO;
import java.util.List;
import java.util.Map;

/**
 * 任务服务接口
 */
public interface TaskService {
    
    /**
     * 创建任务
     *
     * @param taskDTO 任务信息
     * @return 创建后的任务信息
     */
    TaskDTO createTask(TaskDTO taskDTO);
    
    /**
     * 更新任务
     *
     * @param id 任务ID
     * @param taskDTO 任务信息
     * @return 更新后的任务信息
     */
    TaskDTO updateTask(Integer id, TaskDTO taskDTO);
    
    /**
     * 根据ID查询任务
     *
     * @param id 任务ID
     * @return 任务信息
     */
    TaskDTO findById(Integer id);
    
    /**
     * 根据ID删除任务
     *
     * @param id 任务ID
     */
    void deleteById(Integer id);
    
    /**
     * 查询所有任务并按状态分组
     *
     * @param queryDTO 查询条件
     * @return 按状态分组的任务列表
     */
    Map<String, List<TaskDTO>> findAllGroupByStatus(TaskQueryDTO queryDTO);
    
    /**
     * 查询当前用户的任务
     *
     * @param username 用户名
     * @return 按状态分组的任务列表
     */
    Map<String, List<TaskDTO>> findMyTasks(String username);
    
    /**
     * 更新任务状态
     *
     * @param id 任务ID
     * @param status 任务状态
     * @return 更新后的任务信息
     */
    TaskDTO updateTaskStatus(Integer id, String status);

    /**
     * 根据titleIndex查询任务
     *
     * @param titleIndex 任务唯一标识
     * @return 任务信息
     */
    TaskDTO findByTitleIndex(String titleIndex);

    /**
     * 根据parentId查询子任务列表
     *
     * @param parentId 父任务ID
     * @return 子任务列表
     */
    List<TaskDTO> findChildTasks(String parentId);

} 